The Digital video coding standard (DV), is a video coding standard that uses variable length codes (Huffman Codes) and a complex scheme of arranging the variable length coded data to achieve fixed data rate. Variable length codes are characterized by representing data with symbols of varying length.
In Digital Video Coding (DV) the order of the variable length coded symbols is not same as the order in which they need to be decoded. So during decode, the symbols are usually decoded by parsing the symbol stream multiple times. During the first parsing of the symbol stream, a first group of symbols are decoded. Decoding the first group of symbols yields the information required to separate a second group of symbols from the first group. Decoding in multiple parses presents a unique challenge for decoding the symbol stream in real-time.
After decoding the symbols stream during the first parse, the decoder stores the stream for parsing the second time. The streams are stored in memory in a number of different ways. In one way, after the first parse, the variable length symbols that are decoded are replaced with the decoded symbols. The foregoing results in a bit stream that includes both encoded and decoded symbols. During the second parse, the decoder ignores the decoded symbols and decodes the encoded symbols. The foregoing is disadvantageous because the decoded symbols consume processing cycles to scan. Another way for storing the streams involves parsing the stream and, during the parsing, storing each symbol that is not decoded. The foregoing results in the storage of the bitstream without the decoded symbols. However, memory is usually accessible in units of data words. Many of the variable length symbols may be substantially smaller than the width of the data word. As a result, storing symbols in the foregoing manner results in truncation of the remaining fractional portion of the data words after storage of the symbol. In other words, many of the bits in the data words do not store data from the bitstream. Truncation of the remaining fractional portion unnecessarily increases memory consumption.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.